package com.apanal.qlife.sys.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.apanal.qlife.common.page.Page;
import com.apanal.qlife.sys.model.Checkcode;

/**
 * 验证码数据持久层接口
 * 
 * 
 * @author shuliangxing
 * 
 * @date 2015-9-9上午10:24:10
 */
public interface CheckcodeMapper {

	/**
	 * 根据id删除
	 * 
	 * @param codId
	 * @return
	 */
	int deleteByPrimaryKey(Integer codId);

	/**
	 * 新增
	 * 
	 * @param record
	 * @return
	 */
	int insert(Checkcode record);

	/**
	 * 非空字段新增
	 * 
	 * @param record
	 * @return
	 */
	int insertSelective(Checkcode record);

	/**
	 * 根据id查询
	 * 
	 * @param codId
	 * @return
	 */
	Checkcode selectByPrimaryKey(Integer codId);

	/**
	 * 根据id更新非空字段
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKeySelective(Checkcode record);

	/**
	 * 根据id更新
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKey(Checkcode record);

	// 分割线

	/**
	 * 根据条件查询
	 * 
	 * @return
	 */
	List<Checkcode> select(Checkcode record);

	/**
	 * 分页查询
	 * 
	 * @param entity
	 * @param page
	 * @return
	 */
	List<Checkcode> selectForPage(@Param(value = "e") Checkcode entity,
			@Param(value = "p") Page page);

	/**
	 * 查询总记录数
	 * 
	 * @param entity
	 * @param page
	 * @return
	 */
	int selectForPageCount(@Param(value = "e") Checkcode entity,
			@Param(value = "p") Page page);

	/**
	 * 查询最新的验证码
	 * 
	 * @param mobile
	 *            手机号码
	 * @param type
	 *            验证码
	 * @param type
	 *            类型，0=注册，1=密码找回
	 * @return
	 */
	Checkcode findNearestCode(@Param(value = "codMobile") String codMobile,
			@Param(value = "codCode") String codCode,
			@Param(value = "codType") int codType);
}